//
// Created by klen on 23-11-23.
//

#include <memory>  // for allocator, __shared_ptr_access, shared_ptr
#include <string>  // for string, basic_string
#include <vector>  // for vector

#include "ftxui/component/captured_mouse.hpp"  // for ftxui
#include "ftxui/component/component.hpp"  // for Radiobox, Horizontal, Menu, Renderer, Tab
#include "ftxui/component/component_base.hpp"      // for ComponentBase
#include "ftxui/component/screen_interactive.hpp"  // for ScreenInteractive
#include "ftxui/dom/elements.hpp"  // for Element, separator, hbox, operator|, border

int main() {
    using namespace ftxui;
    // 边框,所有的 Element对象都可以添加边框
    // 在text()函数之后 加上 | border 来为元素加上边框
     auto elm = text("这是一个带边框的text") | border;

    // 加边框方法二
    // auto elm = text("这是一个带边框的text");
    // elm |= border;

    // 加边框方法三
    // auto elm = border(text("这是一个带边框的text"));


    // 创建一个屏幕, 宽度为全屏, 高度根据元素大小伸展
    auto screen = Screen::Create(Dimension::Full(), Dimension::Fit(elm));

    // 将元素设置在屏幕对象中展现
    Render(screen, elm);

    // 打印屏幕
    screen.Print();

}